Machine virtualization nests a guest operating system (“OS”) within a host OS by running the guest OS on top of a virtual machine monitor (“VMM”), a.k.a. “hypervisor,” e.g., VMware® Player or Virtual PC. The VMM provides resource emulation for the guest OS so that the guest OS can transparently utilize host OS resources—e.g., CPU, RAM, graphics or audio drivers and hardware, software or firmware interfaces to data stores or network interfaces, peripheral devices and their drivers—anything that the guest OS might need to run, outside of the VMM itself.
Unfortunately, emulation of a resource typically carries a performance penalty for the guest OS. Furthermore, emulation also often restricts functionality. In current VMM implementations, emulated graphics device lack high-performance features, e.g., 3D capabilities or video acceleration. Thus playing most modern 3D computer games is essentially impossible because such games depend on high-performance 3D acceleration. This limitation constrains potential use and deployment of virtual machines.